package task12;

import task11.Student;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Scanner;

/**
 * Create by IntelliJ IDEA
 *
 * @author: jsonor
 * @date-Time: 2018/4/27 9:23
 * @description:
 */
public class CountWords {

  public static void main(String[] args) {
    /* 1、接收用户输入一句英语，单词间以空格分隔
*  2、将这一串字符串以空格分隔出单词,保存在数组中
*  3、利用HashMap保存：单词做key，次数做value
*     循环单词数组：
*        若hashMap中不存在该单词，则加到该集合对象，且value为1
*        若存在该单词，则取出该key对应的值并+1
*   4、遍历HashMap，就得出每个单词出现的次数*/

    System.out.println("请输入一句英文，单词以空格分开：");
    Scanner scanner=new Scanner(System.in);
    //接受用户的字符串
    String sentence=scanner.nextLine();
    //以空格分隔字符串，结果保存在字符串数组中
    String[] words=sentence.split(" ");

    //创建HashMap对象
    HashMap<String,Integer> hashMap=new HashMap<String,Integer>();

    //循环数组
    for(int i=0;i<words.length;i++){
      /*若hashMap中不存在该单词，则加到该集合对象，且value为1
      * 若存在该单词，则取出该key对应的值并+1*/
      //取出key（单词 数组中的每一个元素）
      String key=words[i];
      //集合中包含该单词
      if(hashMap.containsKey(words[i])){
        Integer value=hashMap.get(words[i]);
        value=value+1;
        //覆盖原有的（hashmap不能重复）
        hashMap.put(key,value);
      }else{
        //集合中不包含该单词，直接添加，value为1
        hashMap.put(key,1);
      }
    }

    //遍历（通过键值对集合来获取键和值）
    Iterator iterator=hashMap.entrySet().iterator();
    while (iterator.hasNext()){
      //每一个键值对
      Entry<String,Student> entry= (Entry<String, Student>) iterator.next();
      //通过键值对获取键和值
      String key=entry.getKey();
      Student value=entry.getValue();
      System.out.println(key+"："+value);
    }
  }

}
